package com.mryang.hds.configs;

import com.mryang.hds.utils.ResultJson;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author Genius
 * @version 1.0.0
 * @ClassName GlobalExceptionHandler.java
 * @Description TODO 全局统一异常处理类
 * @createTime 2022年12月27日 15:00:00
 */
@ControllerAdvice
public class GlobalExceptionHandler {


    @ExceptionHandler(value = {Exception.class})
    @ResponseBody
    public <T> ResultJson<T> exceptionHandler(Exception e){

        //这里先判断拦截到的Exception是不是我们自定义的异常类型
        if(e instanceof AppException){
            AppException appException = (AppException)e;
            return ResultJson.error(appException.getCode(),appException.getMsg());
        }

        //如果拦截的异常不是我们自定义的异常(例如：数据库主键冲突)
        return ResultJson.error("服务器端异常");
    }
}
